/*
Theme Name: Souemon GeneratePress Child
Description: 紀州園・Souemon専用、PHPテンプレートによるGeneratePress子テーマ。
Template: generatepress
Version: 0.4.0
Text Domain: souemon-generatepress-child
Requires at least: 6.6
Requires PHP: 8.0
*/
:root{--paper:#f5efe3;--ink:#2b2620;--green:#3f4a32;--accent:#8c5a34;--line:#c5beae;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:2}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block;height:auto}figure{margin:0}h1,h2,.brand-ja,.brand-en,.footer-souemon{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500}h1,h2,p{margin-top:0}h1{font-size:clamp(32px,3.8vw,60px);line-height:1.65;letter-spacing:.07em;margin-bottom:25px}h2{font-size:clamp(24px,2.5vw,36px);line-height:1.7;letter-spacing:.04em}.preview-banner{background:var(--green);color:#fff;padding:7px 4%;font-size:10px;letter-spacing:.13em;display:flex;justify-content:space-between}.preview-banner span{letter-spacing:.06em}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 4%;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:20px;flex-shrink:0}.brand-ja{font-size:30px;letter-spacing:.15em}.brand-line{height:40px;width:1px;background:var(--line)}.brand-en{font-size:27px;line-height:1.2;letter-spacing:.01em}.brand-en small{display:block;font-family:Arial,sans-serif;font-size:8px;letter-spacing:.23em;margin-top:8px}.desktop-nav{display:flex;gap:28px;margin-left:auto;font-size:12px}.desktop-nav a:hover{color:var(--accent)}.desktop-nav a[aria-current]{border-bottom:1px solid var(--accent)}.site-menu{font-size:12px}.site-menu summary{cursor:pointer;list-style:none;border-left:1px solid var(--line);padding-left:20px}.site-menu summary::-webkit-details-marker{display:none}.site-menu summary span{margin-left:12px}.site-menu nav{position:absolute;right:3%;top:90%;padding:25px 35px;background:var(--paper);box-shadow:0 10px 30px #2b262026;display:grid;gap:10px;min-width:240px}.site-menu nav a:hover{background:#e8ecdf;color:var(--green);text-decoration:none}.skip{position:absolute;top:-100px;left:10px;background:var(--paper);padding:10px;z-index:20}.skip:focus{top:0}.photo-hero{position:relative;min-height:620px;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 56%}.photo-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,38,25,.94),rgba(32,38,25,.76) 32%,rgba(32,38,25,.05) 75%)}.hero-copy{z-index:1;position:relative;color:#fff;width:49%;padding:65px 0 85px 6%}.hero-copy>p:not(.eyebrow){font-size:14px;max-width:400px;line-height:2.3}.eyebrow{font-family:Arial,'Hiragino Kaku Gothic ProN',sans-serif;font-size:11px;letter-spacing:.22em;margin-bottom:24px}.hero-caption{position:absolute;z-index:1;bottom:24px;right:4%;color:#fff;font-size:9px;letter-spacing:.2em;text-shadow:0 1px 4px #000}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border:1px solid currentColor;padding:13px 25px;font-size:13px;background:var(--green);color:white;cursor:pointer;min-height:48px}.hero-copy .button{background:transparent;margin-top:16px}.button:hover{background:var(--accent)}.intro{padding:75px 8%;text-align:center}.intro p:last-child{font-family:'Yu Mincho',serif;font-size:20px;margin-bottom:0}.content{width:min(1100px,86%);margin:0 auto}.editorial{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 3fr;gap:70px;padding:76px 0 88px}.section-num{font-family:Georgia,serif;font-size:22px;color:var(--accent);letter-spacing:.12em}.section-num span{margin-left:20px;color:var(--line)}.section-copy{max-width:680px}.section-copy p{line-height:2.3;margin-bottom:28px}.text-link{display:inline-flex;align-items:center;gap:45px;border-bottom:1px solid var(--ink);padding:9px 0;font-size:13px;min-height:44px}.text-link:hover{color:var(--accent)}.with-photo{grid-template-columns:.3fr 1.1fr 1.3fr;align-items:center;gap:48px}.with-photo img{width:100%;height:420px;object-fit:cover}.with-photo .section-num{align-self:start}.tea-art{position:relative;margin:15px 0 0}.tea-art img{width:100%;max-height:340px;object-fit:cover}.tea-art figcaption{position:absolute;right:3%;bottom:10px;font-size:10px;background:var(--paper);padding:2px 8px;color:#625749}.page-hero{width:min(1100px,86%);margin:0 auto;padding:88px 0 65px}.page-hero .eyebrow{color:var(--accent)}.page-hero>p:last-child{max-width:690px;line-height:2.3}.menu-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.menu-photos img{width:100%;aspect-ratio:2/3;object-fit:cover}.menu-photos figcaption{font-family:'Yu Mincho',serif;padding:14px 0;font-size:17px}.notice{background:#ebe2d2;border-left:2px solid var(--accent);padding:17px 22px;font-size:12px;margin:25px 0 50px}.facts{margin:0 0 70px}.facts>div{display:grid;grid-template-columns:1fr 3fr;border-top:1px solid var(--line);padding:22px 0;gap:30px}.facts dt{font-size:13px;color:var(--accent)}.facts dd{margin:0}.form-section{padding:35px 0 90px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}label{display:block;font-size:13px;margin-bottom:25px}input,select,textarea{display:block;width:100%;background:#fbf8f1;border:1px solid #aaa28f;border-radius:0;padding:13px;color:var(--ink);margin-top:8px}textarea{resize:vertical}#form-status{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:22px}footer{background:var(--green);color:var(--paper);padding:60px 6% 20px}.footer-main{display:flex;justify-content:space-between;gap:50px;padding-bottom:50px}.footer-main p:not(.brand-ja){font-size:12px}.footer-souemon{font-size:24px;letter-spacing:0}.footer-main nav{display:grid;grid-template-columns:1fr 1fr;gap:6px 45px;font-size:12px}.footer-main a:hover{color:#e2d3a8;text-decoration:none}.footer-note{border-top:1px solid #899079;padding-top:20px;display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:.05em}.small{font-size:11px}
@media(min-width:1500px){.photo-hero{min-height:740px}.hero-copy{width:45%}}
@media(max-width:1000px){.desktop-nav{gap:16px}.brand{gap:12px}.brand-ja{font-size:26px}.brand-en{font-size:23px}.site-header{gap:16px}.hero-copy{width:57%}.with-photo{gap:25px}.editorial{gap:35px}.menu-photos{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.preview-banner{font-size:8px;letter-spacing:.04em}.preview-banner span{font-size:8px}.site-header{padding:20px 6%}.brand-ja{font-size:24px}.brand-en{font-size:23px}.desktop-nav{display:none}.site-menu summary{padding-left:12px;font-size:10px}.site-menu summary span{margin-left:4px}.photo-hero{display:flex;flex-direction:column;min-height:0;overflow:visible;background:var(--green)}.hero-image{position:relative;height:340px;object-position:center 55%;order:0}.photo-hero:after{display:none}.hero-copy{width:100%;padding:35px 7% 45px;order:1}.hero-copy>p:not(.eyebrow){max-width:none;font-size:13px}.hero-caption{top:316px;bottom:auto;font-size:8px}.hero-copy h1{font-size:34px;line-height:1.7;margin-bottom:17px}.eyebrow{font-size:10px;margin-bottom:16px}.intro{padding:50px 7%}.intro p:last-child{font-size:16px}.content,.page-hero{width:86%}.editorial,.with-photo{display:block;padding:40px 0 50px}.section-num{font-size:16px;margin-bottom:25px}.with-photo img{height:390px;margin-bottom:30px}.section-copy p{font-size:14px}.page-hero{padding:50px 0 38px}.page-hero h1{font-size:32px}.page-hero>p:last-child{font-size:14px}.menu-photos{gap:15px}.menu-photos figcaption{font-size:14px}.facts>div{grid-template-columns:1fr;gap:5px}.facts dd{font-size:14px}.form-grid{grid-template-columns:1fr;gap:0}.form-section .button{gap:10px;font-size:12px;width:100%;padding:13px 15px}.footer-main{display:block;padding-bottom:30px}.footer-main nav{margin-top:30px;gap:10px 25px}.footer-note{display:block;font-size:8px}.footer-note span{display:block;margin-bottom:8px}.tea-art img{min-height:160px}.tea-art figcaption{font-size:8px}.notice{font-size:11px;padding:15px;margin-bottom:35px}.site-menu nav{right:6%;max-width:88vw}}
@media(prefers-reduced-motion:no-preference){a,button{transition:background-color .2s,color .2s}html{scroll-behavior:smooth}}

/* WordPress standard blocks; adapted from the same Souemon prototype. */
.desktop-nav ul,.site-menu ul,.site-footer nav ul{margin:0;padding:0;list-style:none}
.desktop-nav ul{display:flex;gap:28px}.desktop-nav li{white-space:nowrap}
.site-menu nav ul{display:grid;gap:10px}.site-menu nav{max-height:75vh;overflow:auto}
.site-footer nav ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 36px}
.site-footer .footer-main nav{display:block}
.desktop-nav .current-menu-item a{text-decoration:none;border-bottom:1px solid var(--accent)}
.entry-content{padding-bottom:80px}.home-content .entry-content{padding-bottom:0}
.entry-content>p{max-width:760px;line-height:2.3;margin-bottom:30px}
.entry-content>h2{padding-top:34px;margin-top:55px;border-top:1px solid var(--line)}
.entry-content .wp-block-button__link{border-radius:0;background:var(--green);color:#fff;padding:13px 25px;font-size:14px;min-height:48px}
.entry-content .wp-block-button__link:hover{background:var(--accent)}
.entry-content .wp-block-buttons{margin:28px 0 42px;gap:16px}
.home-hero.wp-block-cover{min-height:640px;align-items:center;justify-content:flex-start;padding:70px 6%}
.home-hero .wp-block-cover__inner-container{width:100%;max-width:1100px;margin:0 auto;color:white}
.home-hero .hero-text{max-width:530px}
.home-hero h1{font-size:clamp(32px,4vw,60px);line-height:1.7}
.home-hero p{max-width:460px;font-size:14px;line-height:2.3}
.home-hero .wp-block-cover__background{background:linear-gradient(90deg,#202619f0,#202619b8 40%,#20261905 90%)!important;opacity:1!important}
.home-hero .wp-block-button__link{background:transparent;border:1px solid white}
.home-hero img{object-position:70% 56%}
.home-intro{padding:66px 7%;text-align:center}.home-intro>p:last-child{font-family:'Yu Mincho',serif;font-size:20px}
.home-section{width:min(1100px,86%);margin:0 auto;padding:65px 0;border-top:1px solid var(--line)}
.home-section h2{font-size:clamp(24px,2.5vw,36px)}.home-section p{max-width:700px}
.home-section .wp-block-columns{gap:70px;align-items:center}.home-section .wp-block-image img{width:100%;max-height:470px;object-fit:cover}
.entry-content .wp-block-image{margin:30px 0}.entry-content .wp-block-image img{max-height:600px;object-fit:cover}
.entry-content .wp-block-gallery{margin:30px 0}.entry-content .wp-block-gallery img{object-fit:cover}
.souemon-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;margin-bottom:50px}
.souemon-menu-card{padding-bottom:24px;border-bottom:1px solid var(--line);min-width:0}
.souemon-menu-card img{width:100%;aspect-ratio:2/3;object-fit:cover}.souemon-menu-card h2{font-size:23px;margin:20px 0 10px}
.menu-price{font-size:20px}.menu-price small{font-size:12px}.menu-status{display:inline-block;background:var(--green);color:#fff;padding:2px 14px;font-size:12px}
.post-list{padding:70px 0}.post-list article+article{border-top:1px solid var(--line);padding-top:35px}
@media(max-width:1000px){.desktop-nav ul{gap:16px}.home-section .wp-block-columns{gap:35px}}
@media(max-width:760px){.home-hero.wp-block-cover{min-height:570px;padding:50px 7%;align-items:flex-end}.home-hero h1{font-size:34px}.home-hero p{font-size:13px}.home-hero img{object-position:58% center}.home-hero .wp-block-cover__background{background:linear-gradient(0deg,#202619fa,#20261988 65%,#20261922)!important}.home-section{padding:45px 0}.home-intro{padding:45px 7%}.home-intro>p:last-child{font-size:16px}.souemon-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.souemon-menu-card h2{font-size:18px}.entry-content{padding-bottom:50px}.site-footer nav ul{gap:10px 25px}}
@media(max-width:380px){.brand{gap:8px}.brand-ja{font-size:21px}.brand-en{font-size:20px}.site-menu summary{padding-left:8px}.souemon-menu-grid{grid-template-columns:1fr}.home-hero h1{font-size:29px}}

.photo-hero .hero-image-wrap{position:absolute;inset:0;width:100%;height:100%;margin:0}.photo-hero .hero-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:70% 56%}.photo-hero .hero-copy .wp-block-buttons{margin-bottom:0}.photo-hero .hero-copy .wp-block-button__link{background:transparent;border:1px solid white}.photo-hero .hero-copy .wp-block-button__link:hover{background:var(--accent)}
@media(max-width:760px){.photo-hero .hero-image-wrap{position:relative;height:340px;order:0}.photo-hero .hero-image-wrap img{object-position:center 55%}.photo-hero .hero-copy{width:100%}}
.photo-hero .hero-image-wrap img{max-height:none}

/* Content architecture: readable guides, product choices, and accessible forms. */
.breadcrumbs{padding-top:22px;font-size:12px;color:#675943}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:7px 12px;padding:0;margin:0}
.breadcrumbs li+li:before{content:'›';margin-right:12px;color:var(--accent)}
.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.page-hero{padding-top:58px;padding-bottom:35px}
.page-hero h1{max-width:960px;font-size:clamp(30px,3.5vw,49px);margin-bottom:0}
.entry-content{overflow-wrap:anywhere}
.entry-content>.lead{font-size:18px;line-height:2.15;max-width:800px;margin:0 0 34px}
.entry-content>.wp-block-group{margin:48px 0;padding:36px 0;border-top:1px solid var(--line)}
.entry-content h3{font-weight:500;font-size:20px;line-height:1.7;margin:25px 0 16px}
.entry-content ul,.entry-content ol{padding-left:1.5em;max-width:800px}
.entry-content li{margin-bottom:10px;line-height:2}
.entry-content a:not(.wp-block-button__link):not(.button){text-decoration:underline;text-underline-offset:5px}
.entry-content .wp-block-columns{gap:32px;align-items:stretch}
.entry-content .wp-block-column{min-width:0}
.choice-card{border:1px solid var(--line);padding:28px!important;background:#fbf8f1;height:100%}
.choice-card h3{margin-top:0}
.choice-card p{font-size:14px;margin-bottom:18px}
.choice-card .wp-block-buttons{margin-bottom:0}
.souemon-toc{background:#ebe2d2;padding:22px 28px;margin-bottom:45px}
.souemon-toc p{margin-bottom:10px;font-size:13px;color:var(--accent)}
.souemon-toc ul{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0;margin:0}
.souemon-toc a{font-size:13px}
.entry-content .photo-pair{margin:36px 0}
.photo-pair img{width:100%;aspect-ratio:4/5;object-fit:cover}
.photo-pair figcaption{font-size:12px;margin-top:10px;text-align:left}
.souemon-faq{max-width:900px}
.souemon-faq details{border-top:1px solid var(--line);padding:20px 0}
.souemon-faq summary{cursor:pointer;font-size:16px;padding-right:10px;line-height:1.8}
.souemon-faq details p{margin:20px 0 0 24px;max-width:740px;font-size:14px}
.business-fields{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:10px 0 30px}
.business-fields summary{cursor:pointer;line-height:1.8}
.business-fields>.form-grid{padding-top:24px}
.form-status{background:#ebe2d2;border-left:3px solid var(--accent);padding:20px 26px;margin-bottom:30px}
.form-status p:last-child{margin-bottom:0}
.contact-form{max-width:850px}
.checkbox-label{display:flex;align-items:flex-start;gap:14px;line-height:1.8}
.checkbox-label input{width:20px;height:20px;flex:0 0 20px;margin:3px 0 0}
footer address{font-size:12px;font-style:normal;line-height:2}
.home-section .choice-card{margin:0;border-top:1px solid var(--line)}
.home-section .wp-block-buttons{margin-bottom:0}
@media(max-width:760px){
 .breadcrumbs{padding-top:18px;font-size:11px}
 .page-hero{padding-top:38px;padding-bottom:28px}
 .page-hero h1{font-size:30px}
 .entry-content>.lead{font-size:16px}
 .entry-content>.wp-block-group{margin:32px 0;padding:28px 0}
 .entry-content .wp-block-columns{display:block}
 .entry-content .wp-block-column+.wp-block-column{margin-top:22px}
 .choice-card{padding:23px!important}
 .souemon-toc{padding:20px}
 .souemon-toc ul{gap:10px 18px}
 .souemon-faq summary{font-size:15px}
 .home-section .wp-block-columns{display:block}
 .home-section .wp-block-column+.wp-block-column{margin-top:25px}
 .photo-pair{display:grid!important;grid-template-columns:1fr 1fr;gap:15px!important}
 .photo-pair .wp-block-column+.wp-block-column{margin-top:0}
 .entry-content .wp-block-button{width:100%}
 .entry-content .wp-block-button__link{width:100%;text-align:center;padding:14px}
}

/* GeneratePress layout; parent templates and Premium hooks remain available. */
body{background:var(--paper);color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:15px;line-height:2}
#page.site{max-width:none;padding:0;margin:0}
#content.site-content{display:block;padding:0}
.site-header.souemon-header{background:var(--paper)}
.souemon-header .brand{align-items:flex-start}
.souemon-header .brand-ja,.souemon-header .brand-en{display:grid;gap:2px;line-height:1.15}
.souemon-header .brand small{display:block;margin:0;font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:9px;line-height:1.2;font-weight:400;letter-spacing:.16em}
.souemon-header .brand-name{display:block}
.souemon-header .brand-line{align-self:center}
@media(max-width:760px){.souemon-header .brand small{font-size:8px;letter-spacing:.12em}.souemon-header .brand-ja,.souemon-header .brand-en{gap:1px}}

/* Shared crest: a compact mark and one quiet background on the introduction. */
.souemon-kamon{mix-blend-mode:multiply;object-fit:contain;aspect-ratio:1}
.souemon-header .brand{align-items:center;gap:14px}
.souemon-header-kamon{width:40px;height:40px;flex:0 0 40px}
.souemon-home-kamon{width:42px;height:42px;margin:0 auto 18px}
.home-intro>p.home-brand-caption{font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:12px;line-height:1.9;margin:22px 0 0;color:#625749}
.home-brand-caption a{display:inline-flex;align-items:center;gap:18px;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.souemon-brand-hero{position:relative;isolation:isolate;padding-right:290px;min-height:240px}
.souemon-brand-hero>p,.souemon-brand-hero>h1{position:relative;z-index:1}
.souemon-background-kamon{position:absolute;right:0;top:30px;width:250px;height:250px;opacity:.05;pointer-events:none;z-index:0}
@media(max-width:1000px){.souemon-brand-hero{padding-right:220px}.souemon-background-kamon{width:200px;height:200px}}
@media(max-width:760px){.souemon-header .brand{gap:8px}.souemon-header-kamon{width:32px;height:32px;flex-basis:32px}.souemon-header .brand-ja{font-size:22px}.souemon-header .brand-en{font-size:21px}.souemon-home-kamon{width:38px;height:38px}.souemon-brand-hero{padding-right:0;min-height:0}.souemon-background-kamon{position:relative;inset:auto;width:130px;height:130px;margin:10px 0 -10px auto}.home-intro>p.home-brand-caption{font-size:11px}}
@media(max-width:380px){.souemon-header .brand{gap:6px}.souemon-header-kamon{width:28px;height:28px;flex-basis:28px}.souemon-header .brand-ja{font-size:19px}.souemon-header .brand-en{font-size:18px}.souemon-header .brand small{font-size:7px;letter-spacing:.08em}.souemon-header{gap:10px}.site-menu summary{padding-left:6px;font-size:9px}}
.souemon-shop-nav{white-space:nowrap;border-bottom:1px solid var(--accent);padding-bottom:3px}
/* Japanese mobile typography: keep the hero's phrases together and avoid short orphan lines. */
@media(max-width:760px){
 .souemon-main{line-break:strict;word-break:normal}
 .souemon-main h1,.souemon-main h2,.souemon-main h3,.souemon-main summary,.souemon-main .button{overflow-wrap:normal;word-break:normal;line-break:strict;text-wrap:balance}
 .souemon-main p,.souemon-main li{overflow-wrap:break-word;line-break:strict;text-wrap:pretty}
 .hero-copy h1{font-size:clamp(28px,8vw,34px)}
 .hero-copy h1 .souemon-heading-phrase{display:inline-block;white-space:nowrap}
 .souemon-main .souemon-text-phrase{white-space:nowrap}
}
.souemon-quick-nav{display:none}
.souemon-tea-categories{display:flex;gap:16px 28px;flex-wrap:wrap;margin:20px 0}
.choice-card>img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin-bottom:20px;background:#fff}
@media(max-width:1180px){.souemon-header .desktop-nav{display:none}.souemon-quick-nav{display:flex;justify-content:center;gap:0;border-bottom:1px solid var(--line);font-size:12px}.souemon-quick-nav a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px 16px}.souemon-quick-nav a+a{border-left:1px solid var(--line)}}
@media(max-width:380px){.souemon-quick-nav{font-size:11px}.souemon-quick-nav a{padding:8px 10px}}
.site-footer{padding:0;background:var(--green)}
.souemon-main a{color:var(--ink)}
.souemon-main a.button,.souemon-main button.button{background:var(--green);color:#fff;border-radius:0}
.souemon-main a.button:hover,.souemon-main button.button:hover{background:var(--accent)}
.souemon-main .hero-copy a.button{background:transparent;color:#fff}
.site-footer a{color:var(--paper)}
.souemon-main{width:100%;min-width:0}
.souemon-main .entry-content{margin-top:0}
.content-section{margin:48px 0;padding:36px 0;border-top:1px solid var(--line)}
.content-section>p{max-width:820px;line-height:2.2}
.page-action{margin:26px 0 38px}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:30px 0}
.choice-grid.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice-card .page-action:last-child{margin-bottom:0}
.photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}
.photo-pair figure{margin:0}
.cafe-photo{margin:30px 0 45px}
.cafe-photo img{width:100%;max-height:600px;object-fit:cover}
.entry-content .content-section h2{margin-top:0}
.entry-content .souemon-faq h2{margin-top:36px}
.souemon-menu-card h4{font-family:'Yu Mincho',serif;font-size:23px;margin:0 0 14px;word-break:keep-all;overflow-wrap:anywhere}
.souemon-menu-tabs{display:flex;flex-wrap:wrap;gap:10px 26px;border-block:1px solid var(--line);margin:24px 0;padding:12px 0}
.souemon-menu-tabs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.souemon-menu-group{margin:44px 0}.souemon-menu-group>h3{font-size:27px;scroll-margin-top:30px;margin:0 0 25px}
.souemon-price-note{font-size:13px;line-height:1.9}.souemon-menu-card>img{max-height:220px;aspect-ratio:4/3;margin-bottom:20px}
.souemon-menu-card .menu-price{font-size:20px}.souemon-menu-card p{overflow-wrap:anywhere}
.journal-content{padding:0 0 70px;overflow-wrap:anywhere}
.article-tabs{display:flex;flex-wrap:wrap;gap:12px 24px;border-block:1px solid var(--line);padding:18px 0;margin:0 0 45px}
.article-tabs a{min-height:44px;display:flex;align-items:center;border-bottom:2px solid transparent;font-size:14px}
.article-tabs a[aria-current],.article-tabs a:hover{border-color:var(--accent)}
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:30px 0 45px}
.article-card{min-width:0;border-top:1px solid var(--line);padding-top:22px}
.article-card :is(h2,h3){font-size:23px;letter-spacing:.02em;margin:20px 0 14px}
.article-card :is(h2,h3) a{text-decoration:underline;text-underline-offset:5px}
.article-card p{font-size:14px}
.article-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.article-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;letter-spacing:.03em;color:#655640;line-height:1.9}
.article-summary{border-left:3px solid var(--accent);padding-left:24px;margin-top:30px}
.article-body{max-width:820px;padding-bottom:35px}
.article-body h2{font-size:29px;margin:45px 0 20px;scroll-margin-top:30px}
.article-body a{overflow-wrap:anywhere}
.article-feature{margin:0 0 40px}.article-feature img{width:100%;max-height:540px;object-fit:cover}
.article-after{max-width:1000px;padding-bottom:70px}
.article-cta{background:#ebe2d2;padding:32px;margin:30px 0}
.article-cta h2{font-size:25px}.article-cta p:last-child{margin-bottom:0}
.editorial-byline{border-top:1px solid var(--line);padding:25px 0;margin:30px 0;font-size:13px}
.editorial-byline p:first-child{font-weight:600}.editorial-byline p:last-child{max-width:750px;margin-bottom:0}
.related-articles h2{font-size:27px}.related-articles .article-card :is(h2,h3){font-size:20px}
.collection-guide{border-top:1px solid var(--line);padding-top:30px}.collection-intro{max-width:760px}
.souemon-social-links{margin:25px 0}.souemon-social-links ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.souemon-social-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px;font-size:13px}
.footer-main .souemon-social-links ul{display:block}.footer-main .souemon-social-links{display:block;margin:15px 0;padding:0}
.souemon-instagram{border:1px solid var(--line);padding:28px;margin:30px 0;max-width:700px;overflow-wrap:anywhere}
.souemon-instagram p:last-child{margin-bottom:0}.souemon-embed-output:not(:empty){height:640px;overflow:auto;margin-top:20px}
@media(max-width:1000px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .article-grid{grid-template-columns:1fr;gap:24px}.article-card :is(h2,h3){font-size:22px}
 .article-tabs{gap:8px 18px;margin-bottom:30px}.article-tabs a{font-size:13px}
 .article-body h2{font-size:25px}.article-cta{padding:24px}.article-cta .button{max-width:100%;gap:15px}
 .article-summary{padding-left:18px}.souemon-instagram{padding:22px}
 .content-section{margin:32px 0;padding:28px 0}
 .choice-grid,.choice-grid.guide-grid{grid-template-columns:1fr}
 .page-action .button{max-width:100%;gap:15px;overflow-wrap:anywhere}
 .photo-pair{grid-template-columns:1fr 1fr;gap:15px}
 .souemon-menu-card h4{font-size:18px}.souemon-menu-group>h3{font-size:24px}.souemon-menu-crepes .souemon-menu-grid{grid-template-columns:1fr}
 .souemon-menu-gelato .souemon-menu-card h4{line-height:1.6;min-height:3.2em}
}
.site-menu summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;white-space:nowrap}
.site-menu-icon{display:block;flex-shrink:0}
.site-menu-close,.site-menu[open] .site-menu-icon>path:first-child{display:none}
.site-menu[open] .site-menu-close{display:block}
@media(max-width:760px){.site-menu summary{font-size:11px;gap:6px}.site-menu-icon{width:16px;height:16px}}

/* Three-step contact form */
.contact-form{margin:3rem 0;padding:clamp(1.1rem,3vw,2.5rem);border:1px solid #c9cebf;background:#fffdf8;scroll-margin-top:8rem}
.contact-form label{display:block;margin:1.2rem 0 .5rem}.contact-form input:not([type=checkbox]):not([type=hidden]),.contact-form select,.contact-form textarea{width:100%;max-width:100%;box-sizing:border-box;font:inherit;border:1px solid #7a8274;border-radius:2px;padding:.7rem;background:#fff;color:#242a23}
.contact-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem}.contact-form .checkbox-label{display:flex;align-items:flex-start;gap:.65rem}.contact-form .checkbox-label input{margin-top:.4rem;flex:none}.contact-steps{display:flex;gap:1rem;list-style:none;margin:0 0 1.5rem;padding:0}.contact-steps li{padding:.4rem .75rem;color:#56604f;border-bottom:2px solid #d3d6cc}.contact-steps [aria-current=step]{color:#293d28;border-color:#3b5035;font-weight:700}.contact-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.contact-actions{display:flex;flex-wrap:wrap;gap:1rem}.contact-confirm{margin:1.5rem 0}.contact-confirm>div{padding:1rem 0;border-bottom:1px solid #d3d6cc}.contact-confirm dt{font-weight:700}.contact-confirm dd{margin:.5rem 0 0;overflow-wrap:anywhere}.contact-form .form-status{padding:1rem;border-left:4px solid #8f392d;background:#fff1e9}.contact-form button:focus-visible,.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:3px solid #597a47;outline-offset:3px}
@media(max-width:600px){.contact-form .form-grid{grid-template-columns:1fr}.contact-actions{flex-direction:column}.contact-actions button{width:100%}.contact-steps{gap:.3rem;font-size:.9rem}}

/* Short Japanese terms remain intact in headings, copy and article links. */
.souemon-main .souemon-text-phrase,.sx-page .souemon-text-phrase{display:inline-block;white-space:nowrap}

/* Inline copy must remain one flow even when a word is wrapped in a span. */
.souemon-main a.button{display:inline-block;text-wrap:pretty}
