:root{--green:#176451;--ink:#233e35;--muted:#63746c;--paper:#fbfcf9;--line:#dbe3db;--yellow:#e9ef8c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:100%;object-fit:cover}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bd7315;outline-offset:6px}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:10px}.skip:focus{top:0}.header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--paper);position:relative;z-index:10}.logo{display:flex;flex-direction:column;line-height:1;color:var(--green);width:115px}.logo>span{font-size:12px;letter-spacing:.13em;padding-left:3px}.logo>b{font-family:Georgia,serif;font-size:58px;letter-spacing:-4px;font-weight:500;line-height:1}.logo-dot{color:#dd8b55}.header nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600}.header nav>a:hover{color:#bc673d}.nav-contact{background:var(--green);color:white!important;padding:13px 25px;border-radius:3px}.nav-contact span{margin-left:28px}.menu{display:none}.hero{display:grid;grid-template-columns:45% 55%;min-height:650px;padding-left:7%;position:relative}.hero-copy{padding-top:68px;padding-right:25px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em;margin:0 0 28px;color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,4.6vw,74px);line-height:1.55;font-weight:600;letter-spacing:.06em;margin-bottom:22px}.highlight{background:linear-gradient(transparent 73%,var(--yellow) 73%,var(--yellow) 92%,transparent 92%)}.hero-description{font-size:17px;line-height:2.1;letter-spacing:.04em}.text-link{display:inline-flex;align-items:center;gap:28px;font-size:14px;font-weight:600;margin-top:12px}.circle-arrow{border:1px solid var(--green);width:41px;height:41px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:21px;transition:background .2s,color .2s}.text-link:hover .circle-arrow,.circle-arrow:hover{background:var(--green);color:white}.hero-meta{display:flex;gap:20px;align-items:center;margin:55px 0 24px;font-size:12px;color:var(--muted)}.hero-meta span:last-child{font-size:12px;letter-spacing:.1em}.hero-photo{position:relative;overflow:hidden;margin:0;min-height:650px;border-radius:130px 0 0 0}.hero-photo img{position:absolute;inset:0;object-position:center}.hero-photo:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#162e294d)}.hero-photo figcaption{position:absolute;bottom:45px;left:40px;color:white;z-index:1;writing-mode:vertical-rl;font-size:16px;letter-spacing:.18em}.photo-mark{position:absolute;bottom:22px;right:25px;z-index:1;color:white;font-family:Georgia,serif;font-style:italic;font-size:18px}.audience{position:relative;z-index:2;background:var(--paper);display:flex;align-items:center;justify-content:center;gap:22px;padding:27px 5%;border-bottom:1px solid var(--line);font-size:14px}.audience p{margin:0 30px 0 0;font-weight:600}.audience i{font-style:normal;color:#a8b7ac}.section{padding:104px 7%}h2{font-size:clamp(27px,2.55vw,40px);line-height:1.65;letter-spacing:.05em;font-weight:600;margin-bottom:25px}h3{font-size:22px;line-height:1.6;font-weight:600}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%}.about-body{padding-top:15px}.about-body p{line-height:2.2}.under-link{display:inline-flex;gap:34px;padding:7px 0;border-bottom:1px solid var(--green);font-size:14px;margin-top:12px}.services{padding-top:10px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:14px;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.service-image{display:block;aspect-ratio:1.18;position:relative;overflow:hidden;border-radius:5px}.service-image img{transition:transform .5s}.service-image:hover img{transform:scale(1.035)}.service-image>span:first-of-type{position:absolute;bottom:0;left:0;background:var(--paper);padding:10px 16px 0 0;font-size:12px;letter-spacing:.09em}.service-title{display:flex;align-items:center;justify-content:space-between;margin-top:24px}.service-title h3{margin:0}.service-card>p{font-size:15px;line-height:2;color:var(--muted);margin:16px 0 0}.play{position:absolute;top:40%;left:42%;border:1px solid white;border-radius:50%;color:white;width:54px;height:54px;text-align:center;line-height:54px;font-size:18px;padding-left:3px;background:#213b3533}.photo-detail{display:grid;grid-template-columns:1fr 1fr;gap:60px;background:#eef3ed}.photo-detail>div>p:not(.eyebrow){font-size:15px}.reason-list article{display:flex;gap:26px;border-bottom:1px solid #ccd8cb;padding:24px 0}.reason-list article:first-child{padding-top:0}.reason-list article>span{font-family:Georgia,serif;font-size:28px;color:#648571}.reason-list h3{font-size:20px;margin:0 0 8px}.reason-list p{font-size:14px;color:var(--muted);margin:0}.flow{grid-column:1/-1;border-top:1px solid #ccd8cb;padding-top:32px;display:flex;align-items:center;gap:40px;font-size:14px}.flow>span{font-weight:600}.flow ol{list-style:none;display:flex;flex:1;justify-content:space-between;padding:0;margin:0;gap:16px}.flow b{font-family:Georgia,serif;margin-right:8px;font-weight:400;color:#688473}.album{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.album-photo{height:610px;border-radius:4px 100px 4px 4px;overflow:hidden;position:relative}.album-caption{position:absolute;bottom:38px;left:35px;z-index:1;color:white;font-size:33px;font-family:Georgia,serif;font-style:italic;line-height:1.3}.album-copy>p:not(.eyebrow){font-size:15px;line-height:2.1;color:var(--muted)}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:26px 0 16px;font-size:14px}summary{cursor:pointer;padding:16px 0;list-style:none;display:flex;justify-content:space-between;font-weight:600}summary::-webkit-details-marker{display:none}.price{font-size:14px;padding:6px 0 15px}.price p:last-child{font-size:12px}.trust{background:var(--green);color:white;text-align:center;padding-top:62px;padding-bottom:62px}.trust .eyebrow{color:var(--yellow);margin-bottom:20px}.trust h2{font-size:30px;margin-bottom:18px}.trust p:not(.eyebrow){font-size:15px;color:#e1ebe4}.trust .under-link{border-color:#9fb9a8}.mobile-only{display:none}.news{display:grid;grid-template-columns:1fr 1.6fr;gap:7%}.news h2{font-size:29px}.news-list a{display:grid;grid-template-columns:90px 63px 1fr 20px;gap:15px;align-items:start;border-bottom:1px solid var(--line);padding:22px 0;font-size:13px}.news-list a:first-child{padding-top:0}.news-list time{color:var(--muted)}.news-list p{font-size:14px;margin:0;line-height:1.8}.news-list a:hover p{text-decoration:underline}.tag{color:#a95236;background:#f6e7df;text-align:center;padding:1px 5px;font-size:12px}.tag.plain{background:#edf0e8;color:var(--muted)}.contact{margin:0 4% 75px;padding:70px 6%;border-radius:6px;background:var(--yellow);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.contact h2{font-size:36px}.contact p{font-size:15px}.contact-actions{text-align:center}.contact-button{display:flex;align-items:center;justify-content:space-between;background:var(--green);color:white;padding:24px 30px;border-radius:3px;font-size:17px}.contact-button:hover{background:#0d4d3c}.contact-button span{font-size:27px}.phone{font-size:34px;display:block;letter-spacing:.04em;margin-top:22px}.contact-actions p{font-size:12px;margin:12px 0 0}.contact-actions>a:last-child{font-size:14px;text-decoration:underline}footer{padding:0 7% 30px}.footer-top{display:flex;align-items:center;gap:55px;padding-bottom:45px}.footer-top strong{font-size:14px}.footer-top p{font-size:12px;margin:6px 0 0}.footer-links{margin-left:auto;display:flex;flex-direction:column;font-size:13px;gap:8px}.footer-bottom{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);padding-top:24px;color:var(--muted)}.footer-bottom small{font-size:12px}.footer-bottom>a{margin-left:auto;font-size:12px;letter-spacing:.08em}@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero{min-height:760px}.hero-photo{min-height:760px}.hero-copy{padding-top:105px}}
@media(max-width:1050px){.header nav{gap:18px;font-size:12px}.header{padding:0 4%}.hero{padding-left:5%;grid-template-columns:47% 53%;min-height:570px}.hero-photo{min-height:570px}.hero-copy{padding-top:40px}h1{font-size:44px}.hero-meta{display:block;margin-top:30px}.hero-meta span{display:block}.section{padding:75px 5%}.audience{gap:12px}.audience p{margin-right:10px}.service-title h3{font-size:18px}.section-heading>p{max-width:220px}.service-grid{gap:20px}.album{gap:5%}.album-photo{height:550px}.news{grid-template-columns:1fr;gap:20px}.flow{display:block}.flow ol{margin-top:18px}.contact h2{font-size:30px}.contact-button{font-size:15px;padding:20px}.contact{gap:5%}.footer-top{gap:30px}}
@media(max-width:720px){html{scroll-padding-top:25px}.header{height:87px;padding:0 6%}.logo{width:90px}.logo>b{font-size:48px}.logo>span{font-size:12px}.menu{display:flex;gap:16px;align-items:center;border:0;background:transparent;color:var(--green);font-size:13px;padding:12px 0}.menu span{font-size:23px}.header nav{display:none;position:absolute;top:87px;left:0;width:100%;background:var(--paper);padding:22px 6% 30px;box-shadow:0 10px 15px #233e3510;align-items:stretch;font-size:15px}.header nav.open{display:flex;flex-direction:column;gap:15px}.hero{display:flex;flex-direction:column;padding:0;min-height:0}.hero-copy{padding:31px 7% 30px}.hero .eyebrow{font-size:12px;margin-bottom:19px}h1{font-size:clamp(38px,10vw,57px);line-height:1.5;margin-bottom:20px}.hero-description{font-size:14px}.text-link{font-size:13px;gap:20px;margin-top:3px}.hero-meta{margin:28px 0 0;font-size:12px;display:flex;justify-content:space-between;gap:8px}.hero-meta span:last-child{font-size:12px}.hero-photo{height:410px;min-height:0;margin-left:7%;border-radius:80px 0 0 0}.hero-photo figcaption{left:23px;bottom:26px;font-size:13px}.photo-mark{font-size:15px}.audience{padding:25px 6%;gap:9px;flex-wrap:wrap;font-size:12px}.audience p{width:100%;text-align:center;font-size:13px;margin:0 0 4px}.section{padding:65px 7%}.eyebrow{font-size:12px;margin-bottom:18px}h2{font-size:27px}.about{grid-template-columns:1fr;gap:0}.about-body{padding:0;font-size:14px}.services{padding-top:0}.section-heading{display:block;margin-bottom:28px}.section-heading>p{max-width:none;font-size:13px;margin-top:15px}.service-grid{grid-template-columns:1fr;gap:38px}.service-image{aspect-ratio:1.35}.service-title{margin-top:18px}.service-title h3{font-size:22px}.service-card>p{font-size:14px;margin-top:12px}.photo-detail{grid-template-columns:1fr;gap:22px}.photo-detail>div>p:not(.eyebrow){font-size:14px}.reason-list article{padding:22px 0;gap:19px}.reason-list article:first-child{padding-top:10px}.reason-list h3{font-size:18px}.flow{margin-top:12px}.flow ol{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:12px}.album{grid-template-columns:1fr;gap:35px}.album-photo{height:400px}.album-caption{font-size:29px;left:25px;bottom:28px}.album-copy>p:not(.eyebrow){font-size:14px}.trust{padding:50px 7%}.trust h2{font-size:27px}.trust p:not(.eyebrow){font-size:13px}.mobile-only{display:block}.news{gap:15px}.news h2{font-size:26px}.news-list a{grid-template-columns:88px 65px 1fr;gap:8px;padding:20px 0}.news-list p{grid-column:1/3;font-size:13px}.news-list b{grid-column:3;grid-row:1/3;align-self:center;justify-self:end}.contact{margin:0 5% 50px;padding:40px 7%;grid-template-columns:1fr;gap:20px}.contact h2{font-size:28px}.contact>div>p{font-size:13px}.contact-button{font-size:14px}.phone{font-size:29px}.footer-top{flex-wrap:wrap;gap:24px;padding-bottom:30px}.footer-top>div:not(.footer-links){flex:1;min-width:175px}.footer-top p{font-size:12px}.footer-links{margin-left:0;flex-direction:row;gap:25px;font-size:12px}.footer-bottom{flex-wrap:wrap;gap:8px}.footer-bottom small{font-size:12px}.footer-bottom small:nth-child(2){width:100%;order:3}.footer-bottom>a{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 35px}.service-image{aspect-ratio:1.65}.web-service{background:var(--green);display:flex;align-items:center;justify-content:center;color:var(--yellow)}.web-service .web-word{position:static!important;background:transparent!important;font-size:clamp(30px,3.8vw,52px)!important;letter-spacing:.12em!important;line-height:1.5;padding:0!important}.web-service>span:last-child{position:absolute;bottom:0;left:0;background:var(--paper);color:var(--green);padding:10px 16px 0 0;font-size:12px;letter-spacing:.09em}.detail-heading{padding:30px 8% 65px;background:#eef3ed}.breadcrumbs{font-size:13px;margin-bottom:45px;display:flex;gap:15px;color:var(--muted)}.breadcrumbs a{text-decoration:underline}.detail-heading h1{font-size:clamp(32px,4.3vw,60px);line-height:1.5}.detail-heading>p:last-child{max-width:760px;font-size:17px;margin:0}.detail-cover{max-width:1100px;height:420px;margin:55px auto 0;padding:0 30px}.detail-cover img{border-radius:5px}.detail-block{max-width:1100px;padding:65px 30px 0;margin:0 auto}.detail-block>p{max-width:850px;line-height:2.2}.detail-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.detail-columns article{border-top:1px solid var(--line);padding-top:22px}.detail-columns h3{font-size:22px;margin-bottom:13px}.detail-columns p{font-size:16px}.detail-columns .eyebrow{display:block;margin-bottom:12px}.detail-cta{margin:75px 7%;padding:45px;text-align:center;background:var(--yellow);border-radius:6px}.detail-cta h2{font-size:28px}.detail-cta a{display:inline-block;margin-top:12px}.step-list{padding-left:25px}.step-list li{padding:8px 0 12px}.step-list b{font-size:19px}.step-list p{margin:5px 0 0}.price-table{border-top:1px solid var(--line);margin:25px 0}.price-table>div,.company-list>div{display:flex;gap:25px;padding:22px 0;border-bottom:1px solid var(--line)}.price-table span,.company-list dt{min-width:150px}.company-list dd{margin:0}.company-list a{overflow-wrap:anywhere}.contact-layout{display:grid;grid-template-columns:1fr 1.7fr;gap:8%;padding:70px 7% 90px;max-width:1400px;margin:auto}.contact-layout aside h2{font-size:29px}.contact-tel{font-size:28px;display:block}.email-link{font-size:15px;overflow-wrap:anywhere;text-decoration:underline}.form-note{font-size:13px;line-height:1.8;color:var(--muted);margin:20px 0}.field{margin-bottom:25px}.field label{display:block;font-size:16px;font-weight:600;margin-bottom:8px}.field label>span{font-size:12px;color:#a44830;background:#f9e7e1;padding:2px 7px;margin-left:9px}.field label>small{font-size:12px;color:var(--muted);margin-left:9px}.field input,.field textarea,.field select{width:100%;padding:14px;border:1px solid #bacabc;border-radius:3px;background:white;color:var(--ink);font:inherit;font-size:16px;line-height:1.6}.field textarea{resize:vertical;min-height:160px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--green);outline-offset:2px}.consent{display:flex;gap:12px;font-size:14px;line-height:1.9;align-items:flex-start}.consent input{flex-shrink:0;width:20px;height:20px;margin-top:4px;accent-color:var(--green)}.consent a{text-decoration:underline}.form-submit{border:0;background:var(--green);color:white;padding:18px 25px;border-radius:3px;cursor:pointer;font-size:16px;display:flex;justify-content:space-between;gap:30px;margin-top:30px;width:100%;align-items:center}.form-submit:hover{background:#0d4d3c}.form-submit:disabled{opacity:.6;cursor:wait}.review-values>div{padding:17px 0;border-bottom:1px solid var(--line)}.review-values dt{font-size:13px;color:var(--muted)}.review-values dd{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.confirm-actions{display:flex;gap:15px;align-items:center;margin-top:28px}.confirm-actions .form-submit{margin:0;flex:1}.confirm-actions>button:first-child{background:white;border:1px solid var(--green);padding:18px;color:var(--green);cursor:pointer}.contact-layout [hidden]{display:none!important}#confirm-heading:focus{outline:none}@media(max-width:720px){.service-grid{grid-template-columns:1fr;gap:38px}.service-image{aspect-ratio:1.35}.web-service .web-word{font-size:40px!important}.detail-heading{padding:22px 7% 38px}.breadcrumbs{font-size:12px;margin-bottom:28px}.detail-heading h1{font-size:32px;letter-spacing:.01em}.detail-heading>p:last-child{font-size:15px}.detail-cover{height:290px;margin-top:35px;padding:0 7%}.detail-block{padding:40px 7% 0}.detail-columns{grid-template-columns:1fr;gap:22px}.detail-columns h3{font-size:21px}.detail-cta{margin:50px 5%;padding:30px 7%}.detail-cta h2{font-size:24px}.detail-cta p{font-size:14px}.price-table>div,.company-list>div{flex-direction:column;gap:5px}.contact-layout{grid-template-columns:1fr;gap:30px;padding:40px 7% 60px}.contact-layout aside h2{font-size:25px}.contact-layout aside>p{font-size:14px}.confirm-actions{flex-wrap:wrap}.confirm-actions .form-submit{min-width:175px}}

/* User-provided school photography gallery */
.moments{padding-top:25px}.moment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.moment-grid figure,.scene-grid figure{margin:0;min-width:0}.moment-grid img{aspect-ratio:1.18;object-fit:cover;border-radius:4px}.moment-grid figcaption{padding:12px 2px 0;font-size:16px;font-weight:600}.moment-grid figcaption span{display:block;color:var(--green);font:11px Georgia,serif;letter-spacing:.14em;margin-bottom:3px}.moments>.under-link{margin-top:28px}.scene-gallery{padding-top:62px}.gallery-heading{max-width:760px;margin:0 auto 35px;text-align:center}.gallery-heading .eyebrow{margin-bottom:14px}.gallery-heading h2{margin-bottom:10px}.gallery-heading>p:last-child{font-size:15px;color:var(--muted)}.scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}.scene-grid img{aspect-ratio:1.35;object-fit:cover;border-radius:4px}.scene-grid figcaption{font-size:15px;font-weight:600;padding:10px 2px 0}
@media(max-width:900px){.moment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.moments{padding-top:0}.moment-grid{gap:14px}.moment-grid img{aspect-ratio:1.08}.moment-grid figcaption{font-size:14px;padding-top:9px}.scene-gallery{padding-top:40px}.gallery-heading{text-align:left;margin-bottom:25px}.gallery-heading>p:last-child{font-size:14px}.scene-grid{gap:22px 13px}.scene-grid img{aspect-ratio:1.05}.scene-grid figcaption{font-size:13px;padding-top:8px}}

/* Responsive refinements for tablets and phones */
@media(max-width:900px){
  .header{height:87px;padding:0 6%}
  .logo{width:90px}
  .logo>b{font-size:48px}
  .menu{display:flex;min-height:44px;align-items:center;gap:12px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--green);font-size:14px;font-weight:600;padding:6px 12px}
  .menu span{font-size:21px;line-height:1}
  .header nav{display:none;position:absolute;top:87px;left:0;width:100%;flex-direction:column;align-items:stretch;gap:10px;padding:22px 6% 30px;background:var(--paper);box-shadow:0 10px 15px #233e3510;font-size:16px}
  .header nav.open{display:flex}
  .header nav>a:not(.nav-contact){display:flex;align-items:center;min-height:44px}
  .nav-contact{display:flex;align-items:center;justify-content:space-between;min-height:48px}
  .nav-contact span{margin-left:auto}
}

.hero-photo .hero-slide{opacity:0;transition:opacity 1s ease-in-out}
.hero-photo .hero-slide.is-active{opacity:1}
@media(prefers-reduced-motion:reduce){.hero-photo .hero-slide{transition:none}}
@media(max-width:720px){
  .hero-description,.about-body,.section-heading>p,.service-card>p,.photo-detail>div>p:not(.eyebrow),.reason-list p,.album-copy>p:not(.eyebrow),.trust p:not(.eyebrow),.contact>div>p,.gallery-heading>p:last-child,.detail-heading>p:last-child,.detail-block>p,.detail-columns p,.detail-cta p,.contact-layout aside>p{font-size:16px;line-height:1.85}
  .news-list p{font-size:15px;line-height:1.75}
  .text-link,.under-link{font-size:15px;min-height:44px}
  .contact-button{font-size:16px;min-height:56px}
  .moment-grid figcaption,.scene-grid figcaption{font-size:15px}
  .footer-links{font-size:14px;gap:18px}
  .footer-bottom>a{font-size:14px;min-height:44px;display:flex;align-items:center}
}

/* Privacy page */
.privacy-section{padding-bottom:16px}.privacy-highlight{margin-top:26px;padding:25px 28px;background:#eef3ed;border-left:4px solid var(--green);border-radius:4px}.privacy-highlight>b{display:block;color:var(--green);font-size:18px;margin-bottom:8px}.privacy-highlight>p{margin:10px 0 0}.privacy-facts{margin:28px 0;display:grid;grid-template-columns:minmax(160px,.7fr) 2fr}.privacy-facts dt,.privacy-facts dd{padding:18px 15px;border-bottom:1px solid var(--line)}.privacy-facts dt{font-weight:600}.privacy-facts dd{margin:0;line-height:1.9}.privacy-note,.privacy-contact{margin-top:24px;padding:22px 25px;background:#eef3ed;border-radius:4px}.privacy-note a{text-decoration:underline}.privacy-contact p{margin:8px 0 0}.privacy-contact a{text-decoration:underline}.privacy-updated{font-size:14px;color:var(--muted);margin-top:22px}@media(max-width:720px){.privacy-highlight{padding:20px}.privacy-facts{grid-template-columns:1fr}.privacy-facts dt{padding:16px 0 3px;border-bottom:0}.privacy-facts dd{padding:4px 0 16px}.privacy-note,.privacy-contact{padding:18px}}

/* Use the supplied studio logo consistently. */
.logo{display:block;line-height:1;width:190px}
.logo img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:720px){.logo{width:158px}}

/* PSMS explainer page */
.psms-intro{display:grid;grid-template-columns:minmax(190px,.7fr) 2fr;gap:7%;align-items:center}.psms-mark{min-height:210px;border-radius:6px;background:var(--green);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.psms-mark span{font:500 46px Georgia,serif;letter-spacing:.12em;color:var(--yellow)}.psms-mark small{font-size:14px;letter-spacing:.04em;margin-top:8px}.psms-intro h2{font-size:clamp(25px,2.5vw,36px)}.psms-intro>div:last-child>p:not(.eyebrow){font-size:16px;line-height:1.9}@media(max-width:720px){.psms-intro{grid-template-columns:1fr;gap:28px}.psms-mark{min-height:150px}.psms-mark span{font-size:40px}}

.news-archive{padding-bottom:90px}.news-archive .news-list{max-width:900px}.news-article{max-width:920px;margin:0 auto;padding-bottom:100px}.news-article h2{margin-top:44px}.news-article .privacy-highlight a,.news-article .privacy-note a{text-decoration:underline}.news-nav{margin-top:48px}.news-article p{line-height:1.95}@media(max-width:720px){.news-archive{padding-bottom:60px}.news-article{padding-bottom:70px}.news-article h2{margin-top:36px}}

/* Layer five L-size prints over the greeting, then fade the stack as one. */
.hero-photo{overflow:visible;border-radius:0;background:none}
.hero-photo:after{display:none}
.hero-photo .photo-stack{position:absolute;inset:55px 40px 70px 0;overflow:hidden;z-index:1;animation:nico-stack-cycle 20.5s linear infinite}.hero-photo .print-photo{--x:0px;--y:0px;--r:0deg;position:absolute;top:50%;left:50%;width:min(72%,430px);height:auto;max-height:none;object-fit:contain;background:#fff;padding:10px 10px 25px;box-shadow:0 15px 28px #27362e30,0 2px 5px #27362e20;scale:.9}.hero-photo .portrait-photo{width:min(50%,300px)}.hero-photo .print-photo:nth-child(1){--x:-225px;--y:-100px;--r:-8deg;animation:nico-print-one 20.5s linear infinite}.hero-photo .print-photo:nth-child(2){--x:105px;--y:-130px;--r:8deg;animation:nico-print-two 20.5s linear infinite}.hero-photo .print-photo:nth-child(3){--x:-210px;--y:80px;--r:6deg;animation:nico-print-three 20.5s linear infinite}.hero-photo .print-photo:nth-child(4){--x:110px;--y:135px;--r:-8deg;animation:nico-print-four 20.5s linear infinite}.hero-photo .print-photo:nth-child(5){--x:-65px;--y:25px;--r:-3deg;animation:nico-print-five 20.5s linear infinite}.hero-photo .print-photo:nth-child(6){--x:185px;--y:-190px;--r:5deg;animation:nico-print-six 20.5s linear infinite}.hero-photo .print-photo:nth-child(7){--x:-255px;--y:185px;--r:-6deg;animation:nico-print-seven 20.5s linear infinite}.hero-photo figcaption{position:absolute;left:calc(50% - 70px);top:calc(50% - 8px);bottom:auto;z-index:2;transform:translate(-50%,-50%);color:var(--green);writing-mode:horizontal-tb;font-size:20px;font-weight:700;letter-spacing:.08em;line-height:1.5;white-space:nowrap}.hero-photo figcaption:before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:300px;height:300px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(238,165,187,.32);filter:blur(42px);pointer-events:none}@keyframes nico-stack-cycle{0%,90.24%{opacity:1}95.12%,100%{opacity:0}}@keyframes nico-print-one{0%,14.63%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}18.54%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + -190px),calc(-50% + var(--y) + -180px)) rotate(calc(var(--r) + -14deg)) scale(.94)}}@keyframes nico-print-two{0%,24.39%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}28.29%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + 190px),calc(-50% + var(--y) + -180px)) rotate(calc(var(--r) + 14deg)) scale(.94)}}@keyframes nico-print-three{0%,34.15%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}38.05%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + -190px),calc(-50% + var(--y) + 180px)) rotate(calc(var(--r) + -10deg)) scale(.94)}}@keyframes nico-print-four{0%,43.90%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}47.80%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + 190px),calc(-50% + var(--y) + 180px)) rotate(calc(var(--r) + 10deg)) scale(.94)}}@keyframes nico-print-five{0%,53.66%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}57.56%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + 0px),calc(-50% + var(--y) + -220px)) rotate(calc(var(--r) + 8deg)) scale(.94)}}@keyframes nico-print-six{0%,63.41%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}67.32%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + 230px),calc(-50% + var(--y) + 0px)) rotate(calc(var(--r) + 15deg)) scale(.94)}}@keyframes nico-print-seven{0%,73.17%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985)}77.07%,90.24%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px)),calc(-50% + var(--y))) rotate(var(--r))}95.12%,100%{opacity:0;transform:translate(calc(-50% + var(--x) + var(--photo-left-shift, 0px) + -210px),calc(-50% + var(--y) + 20px)) rotate(calc(var(--r) + -16deg)) scale(.94)}}@media(max-width:1100px) and (min-width:721px){.hero-photo .print-photo{width:min(68%,370px)}.hero-photo .portrait-photo{width:min(52%,260px)}.hero-photo .print-photo:nth-child(1){--x:-85px;--y:-75px}.hero-photo .print-photo:nth-child(2){--x:68px;--y:-90px}.hero-photo .print-photo:nth-child(3){--x:-95px;--y:58px}.hero-photo .print-photo:nth-child(4){--x:78px;--y:88px}.hero-photo .print-photo:nth-child(5){--x:-24px;--y:5px}.hero-photo .print-photo:nth-child(6){--x:90px;--y:-125px}.hero-photo .print-photo:nth-child(7){--x:-145px;--y:140px}.hero-photo figcaption{left:calc(50% - 36px);top:calc(50% - 8px);transform:translate(-50%,-50%);font-size:18px}}@media(max-width:720px){.hero-photo{height:480px;margin:0 5%;min-height:0}.hero-photo .photo-stack{inset:62px 2% 62px}.hero-photo .print-photo{width:min(67%,300px);padding:7px 7px 17px}.hero-photo .portrait-photo{width:min(58%,220px)}.hero-photo .print-photo:nth-child(1){--x:-46px;--y:-55px}.hero-photo .print-photo:nth-child(2){--x:48px;--y:-65px}.hero-photo .print-photo:nth-child(3){--x:-52px;--y:48px}.hero-photo .print-photo:nth-child(4){--x:50px;--y:66px}.hero-photo .print-photo:nth-child(5){--x:-7px;--y:3px}.hero-photo .print-photo:nth-child(6){--x:42px;--y:-125px}.hero-photo .print-photo:nth-child(7){--x:-70px;--y:120px}.hero-photo figcaption{left:calc(50% - 5px);top:50%;bottom:auto;transform:translate(-50%,-50%);z-index:2;font-size:15px;white-space:normal}.hero-photo figcaption:before{width:245px;height:245px}}@media(max-width:390px){.hero-photo{height:450px}.hero-photo .photo-stack{inset:65px 2% 58px}.hero-photo .print-photo{width:70%}.hero-photo .portrait-photo{width:min(62%,200px)}.hero-photo .print-photo:nth-child(1){--x:-34px;--y:-48px}.hero-photo .print-photo:nth-child(2){--x:36px;--y:-58px}.hero-photo .print-photo:nth-child(3){--x:-39px;--y:40px}.hero-photo .print-photo:nth-child(4){--x:38px;--y:57px}.hero-photo .print-photo:nth-child(5){--x:-7px;--y:3px}.hero-photo .print-photo:nth-child(6){--x:27px;--y:-105px}.hero-photo .print-photo:nth-child(7){--x:-50px;--y:100px}}

/* Clear, easy-to-follow photo delivery steps */
.flow{grid-column:1/-1;border-top:1px solid #ccd8cb;padding-top:30px;display:block;font-size:16px}
.flow-title{text-align:center;font-size:26px;line-height:1.45;margin:0 0 24px;color:var(--ink)}
.flow .flow-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:30px;padding:0;margin:0}
.flow-step{position:relative;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px;background:#fff;border:1px solid #cbd9cd;border-radius:12px;box-shadow:0 5px 18px #233e350c;text-align:center}
.flow-step:not(:last-child)::after{content:"▶";position:absolute;right:-19px;top:50%;transform:translateY(-50%);color:var(--green);font-size:20px;line-height:1;z-index:1}
.flow-icon{width:108px;height:108px;object-fit:contain}
.flow-number{font-family:Georgia,serif;color:#648571;font-size:15px;line-height:1.2;letter-spacing:.08em}
.flow-label{font-size:18px;line-height:1.5;font-weight:700}
@media(max-width:900px){.flow-title{font-size:23px;margin-bottom:18px}.flow .flow-list{grid-template-columns:1fr;gap:15px}.flow-step{min-height:105px;display:grid;grid-template-columns:84px 42px 1fr;justify-items:start;align-content:center;column-gap:12px;row-gap:3px;padding:12px 16px;text-align:left}.flow-icon{width:76px;height:76px;grid-column:1;grid-row:1/3}.flow-number{grid-column:2;grid-row:1/3;align-self:center}.flow-label{grid-column:3;grid-row:1/3;align-self:center;font-size:18px}.flow-step:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-10px;transform:translate(-50%,50%) rotate(90deg);font-size:17px}}

.psms-certificate{max-width:820px;margin:34px auto 8px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 20px #233e350c}.psms-certificate>a{display:block}.psms-certificate img{display:block;width:100%;height:auto;object-fit:contain}.psms-certificate figcaption{font-size:14px;line-height:1.8;color:var(--muted);text-align:center;margin-top:14px}@media(max-width:720px){.psms-certificate{margin-top:24px;padding:10px}.psms-certificate figcaption{font-size:14px;line-height:1.75}}
.service-card:nth-child(2) .service-image{aspect-ratio:3/2}
.detail-cover-natural{height:auto}.detail-cover-natural img{display:block;width:100%;height:auto;object-fit:contain}

.photography-page .photo-text-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px}.photo-text-columns p{margin-bottom:0;line-height:2.1}.photo-fee{margin-top:32px;padding:28px 32px;background:#eef3ed;border-radius:6px}.photo-fee h3{margin-bottom:10px}.photo-fee p{margin-bottom:0}.photography-page .scene-gallery{padding-top:70px;padding-bottom:10px}.photo-process-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0;margin:32px 0 0}.photo-process-list li{position:relative;padding:24px 18px;background:#eef3ed;border:1px solid var(--line);border-radius:8px}.photo-process-list li:not(:last-child):after{content:"▶";position:absolute;right:-19px;top:66px;font-size:15px;color:var(--green)}.photo-process-list img{width:76px;height:76px;object-fit:contain;margin:0 auto 22px}.photo-process-list .eyebrow{display:block;font-size:12px;letter-spacing:.07em;margin-bottom:8px}.photo-process-list h3{font-size:20px;margin-bottom:12px}.photo-process-list p{font-size:16px;line-height:1.9;margin:0}.photo-option-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px}.photo-option{padding:30px;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:5px;background:#fff}.photo-option .eyebrow{display:block;margin-bottom:12px}.photo-option p{margin-bottom:8px}.photo-combination{text-align:center;padding:22px;background:#eef3ed;border-radius:5px;max-width:none!important;margin:22px 0 0;font-weight:600}.photo-benefits{margin-top:35px}.photo-security{margin-top:34px;padding:32px;background:#eef3ed;border-radius:6px}.photo-security .eyebrow{margin-bottom:12px}.photo-security h3{margin-bottom:15px}.photo-security p{max-width:850px}.photo-envelope{border-left:3px solid var(--green);padding-left:26px}.photo-envelope h3{margin-bottom:12px}
@media(max-width:900px){.photo-process-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.photo-process-list li:nth-child(2):after{display:none}}
@media(max-width:720px){.photography-page .photo-text-columns,.photo-option-grid{grid-template-columns:1fr;gap:24px}.photo-fee,.photo-security,.photo-option{padding:24px}.photography-page .scene-gallery{padding-top:45px}.photo-process-list{grid-template-columns:1fr;gap:22px}.photo-process-list li{padding:22px}.photo-process-list img{float:left;width:64px;height:64px;margin:0 18px 12px 0}.photo-process-list p{clear:both}.photo-process-list li:not(:last-child):after{display:block;right:auto;left:50%;top:auto;bottom:-20px;transform:translateX(-50%) rotate(90deg)}.photo-process-list h3{font-size:21px}.photo-combination{font-size:16px}.photo-envelope{padding-left:20px}}
.photography-page .scene-grid img{aspect-ratio:3/2;object-fit:contain}
.photo-family-statement{max-width:none!important;margin:-8px 0 27px;color:var(--green);font-size:18px;font-weight:600;line-height:1.8}
@media(max-width:720px){.photo-family-statement{font-size:17px;margin:-5px 0 22px}}
.photo-fee-zero{color:var(--green);font-size:1.08em;white-space:nowrap}
.photography-page .scene-grid figcaption{padding-top:2px}

/* Video production flow and annual photography offer */
.movie-process-flow .detail-columns article{position:relative}
.movie-process-flow .detail-columns article:not(:last-child)::after{content:"▶";position:absolute;right:-22px;top:50%;transform:translateY(-50%);z-index:1;color:var(--green);font-size:18px;line-height:1}
.annual-shooting-offer{max-width:1040px;margin:24px auto 0;padding:22px 28px;background:var(--green);color:#fff;border-left:6px solid var(--yellow);border-radius:5px;text-align:center}
.annual-shooting-offer .eyebrow{color:var(--yellow);margin:0 0 6px}
.annual-shooting-offer p:last-child{font-size:17px;line-height:1.8;font-weight:600;margin:0}
@media(max-width:720px){.movie-process-flow .detail-columns{gap:22px}.movie-process-flow .detail-columns article:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-21px;transform:translateX(-50%) rotate(90deg);background:var(--paper);padding:0 4px}.annual-shooting-offer{margin:20px 7% 0;padding:20px 16px}.annual-shooting-offer p:last-child{font-size:16px}}

.website-self-produced{margin:24px 0 0!important;padding:15px 20px;background:#eef3ed;border-left:4px solid var(--green);font-weight:700;color:var(--green)}
@media(max-width:720px){.website-self-produced{padding:14px 16px}}

.family-contact-layout{padding-top:45px}

.contact-route-link{display:block;margin-top:26px;padding:17px 20px;background:var(--green);border-radius:4px;color:#fff;font-size:17px;font-weight:700;line-height:1.6;text-align:center;transition:background .2s}
.contact-route-link:hover{background:#0d4d3c}
@media(max-width:720px){.contact-route-link{margin-top:22px;padding:16px;font-size:16px}}

.about-cover img{object-position:center 70%}
@media(max-width:720px){.about-cover img{object-position:center 68%}}


.hero-photo figcaption{animation:none}
.hero-photo figcaption::before,.hero-photo figcaption span{opacity:0}
.hero-photo figcaption.caption-playing::before{animation:nico-caption-circle-cycle 20.5s linear infinite}
.hero-photo figcaption.caption-playing span{animation:nico-caption-text-cycle 20.5s linear infinite}
@keyframes nico-caption-circle-cycle{0%{opacity:0}1.46%,90.24%{opacity:1}95.12%,100%{opacity:0}}
@keyframes nico-caption-text-cycle{0%,2.44%{opacity:0}4.39%,90.24%{opacity:1}95.12%,100%{opacity:0}}

/* Keep the greeting and pink glow beneath the opaque print photos. */
.hero-photo figcaption{z-index:0}

.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Responsive Japanese line wrapping: keep compact headings and controls balanced. */
@media (max-width: 1050px) {
  body { line-break: strict; word-break: normal; }
  p, li, dd { text-wrap: pretty; }
  h1, h2, h3, figcaption, .eyebrow, .flow-title, .flow-label,
  .annual-shooting-offer, .photo-combination, .website-self-produced,
  a, button, summary { text-wrap: balance; }
  a, button, summary { overflow-wrap: break-word; }
}

/* On phones, give the portrait print enough room above the audience bar. */
@media (max-width: 720px) {
  .hero-photo .photo-stack .portrait-photo {
    width: clamp(150px, 43vw, 185px);
    height: auto;
    object-fit: contain;
    animation-name: nico-portrait-mobile;
    --x: -42px;
    --y: 20px;
  }
}
@media (max-width: 390px) {
  .hero-photo .photo-stack .portrait-photo {
    width: clamp(150px, 43vw, 170px);
    --x: -26px;
    --y: 14px;
  }
}

@keyframes nico-portrait-mobile {
  0%, 34.15% {
    opacity: 0;
    transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) rotate(var(--r)) translateY(20px) scale(.985);
  }
  38.05%, 90.24% {
    opacity: 1;
    transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) rotate(var(--r));
  }
  95.12%, 100% {
    opacity: 0;
    transform: translate(calc(-50% + var(--x) - 30px), calc(-50% + var(--y) + 32px)) rotate(calc(var(--r) - 4deg)) scale(.94);
  }
}

/* Keep the original header navigation and add a separate floating shortcut. */
.header {
  position: relative;
  z-index: 10;
  background: var(--paper);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.header nav {
  display: flex;
  position: static;
  top: auto;
  right: auto;
  left: auto;
  width: auto;
  max-height: none;
  overflow: visible;
  flex-direction: row;
  align-items: center;
  gap: 32px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  font-size: 14px;
  z-index: auto;
}
.menu { display: none; }

.floating-menu-button {
  position: fixed;
  top: clamp(170px, 62vh, 680px);
  right: max(16px, env(safe-area-inset-right));
  z-index: 1003;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  padding: 0;
  border: 1px solid #dce5dc;
  border-radius: 50%;
  background: #fbfcf8;
  color: var(--green);
  box-shadow: 0 3px 10px rgba(27, 48, 39, .11);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.floating-menu-button:hover,
.floating-menu-button:focus-visible { background: #edf3ed; border-color: #c8d7c9; box-shadow: 0 4px 12px rgba(27, 48, 39, .14); }
.floating-menu-button:active { background: #e5eee6; transform: scale(.97); }
.floating-menu-button:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.floating-menu-button .menu-icon {
  display: flex;
  width: 24px;
  height: 18px;
  flex-direction: column;
  justify-content: space-between;
}
.floating-menu-button .menu-icon i {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}
.floating-menu-button[aria-expanded="true"] .menu-icon i:first-child { transform: translateY(8px) rotate(45deg); }
.floating-menu-button[aria-expanded="true"] .menu-icon i:nth-child(2) { opacity: 0; }
.floating-menu-button[aria-expanded="true"] .menu-icon i:last-child { transform: translateY(-8px) rotate(-45deg); }

.floating-navigation {
  display: none;
  position: fixed;
  top: auto;
  bottom: calc(38vh + 10px);
  right: max(16px, env(safe-area-inset-right));
  z-index: 1002;
  width: min(340px, calc(100vw - 32px));
  max-height: min(560px, calc(100dvh - 24px));
  overflow-y: auto;
  overscroll-behavior: contain;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(24, 47, 37, .24);
  color: var(--ink);
  font-size: 16px;
}
.floating-navigation.open { display: flex; }
.floating-navigation > a:not(.nav-contact) {
  display: flex;
  align-items: center;
  min-height: 50px;
  padding: 10px 13px;
  border-radius: 6px;
  line-height: 1.55;
}
.floating-navigation > a:not(.nav-contact):hover,
.floating-navigation > a:not(.nav-contact):focus-visible { background: #eef3ed; }
.floating-navigation > .nav-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  margin-top: 5px;
  padding: 12px 16px;
  font-size: 16px;
}
.floating-navigation > .nav-contact span { margin-left: auto; }

.menu-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(21, 39, 32, .34);
  backdrop-filter: blur(1px);
  -webkit-backdrop-filter: blur(1px);
}
body.menu-open,
body.floating-menu-open { overflow: hidden; }
body.menu-open .menu-backdrop,
body.floating-menu-open .menu-backdrop { display: block; }

@media (max-width: 1050px) {
  .header nav { gap: 18px; font-size: 12px; }
}
@media (max-width: 720px) {
  .header { height: 87px; padding: 0 6%; }
  .header nav {
    display: none;
    position: absolute;
    top: 87px;
    right: auto;
    left: 0;
    width: 100%;
    max-height: calc(100vh - 100px);
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
    padding: 22px 6% 30px;
    border: 0;
    border-radius: 0;
    background: var(--paper);
    box-shadow: 0 10px 15px rgba(35, 62, 53, .12);
    font-size: 15px;
  }
  .header nav.open { display: flex; }
  .header nav > a:not(.nav-contact) { min-height: 48px; }
  .menu {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 16px;
    padding: 12px 0;
    border: 0;
    background: transparent;
    color: var(--green);
    font-size: 13px;
    cursor: pointer;
  }
  .menu span { font-size: 23px; }
  body.menu-open .header { z-index: 1001; }
  body.menu-open .header nav { z-index: 1002; }
  .floating-menu-button { top: min(max(60vh, 120px), calc(100dvh - 68px)); width: 54px; height: 54px; right: max(14px, env(safe-area-inset-right)); }
  .floating-navigation {
    bottom: min(calc(40vh + 10px), calc(100dvh - 78px));
    max-height: min(560px, calc(60vh - 24px));
    right: max(14px, env(safe-area-inset-right));
    width: min(340px, calc(100vw - 28px));
  }
}
@media (min-width: 721px) and (max-height: 700px) {
  .floating-menu-button { top: min(60vh, calc(100dvh - 72px)); }
  .floating-navigation {
    bottom: min(calc(40vh + 10px), calc(100dvh - 78px));
    max-height: min(560px, calc(60vh - 24px));
  }
}
@media (prefers-reduced-motion: reduce) {
  .floating-menu-button,
  .floating-menu-button .menu-icon i { transition: none; }
}
