/* PHO-03 浪漫柔和 — garden wedding stationery */
.tpl-pho-03{--gut:clamp(16px,5vw,80px);--serif:"Cormorant Garamond","Noto Sans SC",Garamond,"Songti SC",serif;--sans:"Manrope","Noto Sans SC",system-ui,sans-serif;font-family:var(--sans);font-size:16px;font-synthesis-style:none;background:radial-gradient(120% 60% at 50% 0%,var(--soft),transparent 70%) no-repeat,var(--bg)}
.tpl-pho-03 main{max-width:1440px;margin:0 auto}
.tpl-pho-03 main>section{padding:clamp(64px,9vw,136px) var(--gut)}
.tpl-pho-03 h2{font:italic 300 clamp(38px,5vw,72px)/1.08 var(--serif);letter-spacing:-.01em}
.p3-sprig{display:block;width:96px;height:20px;color:var(--accent);margin:0 auto 18px;opacity:.85}

.p3-head{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px var(--gut) 8px;text-align:center}
.p3-brand{font:italic 400 clamp(26px,2.6vw,34px)/1 var(--serif);text-decoration:none;min-height:44px;display:flex;align-items:center;letter-spacing:.01em}
.p3-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0 clamp(16px,2.4vw,36px)}
.p3-nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.p3-nav a:hover{color:var(--accent)}
.p3-kicker{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;margin:0 0 18px;color:var(--accent)}
.p3-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 32px;background:var(--accent);color:var(--on-accent);text-decoration:none;border-radius:999px;font-weight:600;font-size:14.5px;letter-spacing:.04em;transition:transform .25s,box-shadow .25s;max-width:100%;text-align:center}
.p3-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px var(--accent)}
.p3-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font:italic 400 20px/1 var(--serif);border-bottom:1px solid var(--line)}
.p3-link:hover{color:var(--accent);border-color:currentColor}

/* hero: arch photo + centred invitation copy */
.p3-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,104px);align-items:center;padding-top:clamp(32px,4vw,64px)!important}
.p3-hero--text{grid-template-columns:minmax(0,1fr)}
.p3-hero-copy{text-align:center;display:flex;flex-direction:column;align-items:center}
.p3-hero h1{font:italic 300 clamp(48px,6.6vw,108px)/1.02 var(--serif);letter-spacing:-.015em;margin-bottom:clamp(20px,2.4vw,32px);max-width:11em}
.p3-sub{font-size:17px;color:var(--muted);max-width:26em;margin-bottom:22px}
.p3-sub p{margin:0 0 .5em}
.p3-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 28px}
.p3-arch{position:relative;width:100%;max-width:560px;justify-self:center;padding:16px 16px 0}
.p3-arch::before{content:"";position:absolute;inset:0 0 -16px;border:1px solid var(--accent);border-bottom:0;border-radius:999px 999px 0 0;opacity:.5}
.p3-arch::after{content:"";position:absolute;left:50%;bottom:-16px;width:7px;height:7px;background:var(--accent);transform:translate(-50%,50%) rotate(45deg);opacity:.7}
.p3-arch img{position:relative;width:100%;aspect-ratio:4/5.3;object-fit:cover;border-radius:999px 999px 0 0}

/* about: soft panel, copy + arch portrait */
.p3-about{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,6vw,96px);align-items:center;background:var(--soft);border-radius:clamp(28px,4vw,48px)}
@media (min-width:761px){.tpl-pho-03 main>.p3-about{margin:0 var(--gut)}}
.p3-about--text{grid-template-columns:minmax(0,1fr)}
.p3-about-copy{text-align:center;max-width:640px;justify-self:center}
.p3-about h2{margin-bottom:22px}
.p3-about-body{font-size:17px;color:var(--muted);max-width:30em;margin:0 auto}
.p3-about-body p:last-child{margin:0}
.p3-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:20px;margin-top:8px;text-align:center}
.p3-steps li{padding:18px 12px;border-top:1px solid var(--line)}
.p3-steps span{display:block;font:italic 400 30px/1 var(--serif);color:var(--accent);margin-bottom:8px}
.p3-steps p{margin:0;color:var(--muted)}
.p3-about-img{justify-self:center;width:100%;max-width:420px;overflow:hidden;border-radius:999px 999px 24px 24px}
.p3-about-img img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* section heads */
.p3-sec-head{text-align:center;max-width:780px;margin:0 auto clamp(40px,5vw,72px)}
.p3-sec-head h2{margin-bottom:18px}
.p3-intro{color:var(--muted);max-width:34em;margin:0 auto}
.p3-intro p:last-child{margin:0}

/* services: arch-topped cards */
.p3-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(16px,2vw,28px)}
.p3-card{flex:1 1 280px;max-width:420px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(48px,5vw,72px) clamp(22px,2.6vw,36px) 32px;background:var(--soft);border-radius:999px 999px 28px 28px;border:1px solid var(--line);transition:transform .35s,background .35s}
.p3-card:hover{transform:translateY(-4px)}
.p3-numeral{font:italic 400 34px/1 var(--serif);color:var(--accent);margin-bottom:14px}
.p3-card h3{font:500 clamp(26px,2.4vw,32px)/1.15 var(--serif);margin-bottom:12px}
.p3-card-desc{color:var(--muted);font-size:15.5px;margin-bottom:auto}
.p3-card-desc p{margin:0 0 .6em}
.p3-price{font:italic 500 22px/1.2 var(--serif);margin:14px 0 0}
.p3-ask{margin-top:18px;min-height:44px;display:inline-flex;align-items:center;padding:0 22px;border:1px solid var(--accent);border-radius:999px;text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--accent);transition:background .2s,color .2s}
.p3-ask:hover{background:var(--accent);color:var(--on-accent)}

/* gallery: soft masonry */
.p3-masonry{columns:3;column-gap:clamp(12px,1.8vw,24px)}
.p3-n1{columns:1;max-width:640px;margin:0 auto}
.p3-few{columns:2;max-width:1080px;margin:0 auto}
.p3-m{break-inside:avoid;margin:0 0 clamp(12px,1.8vw,24px);display:inline-block;width:100%}
.p3-m-frame{overflow:hidden;border-radius:18px;background:var(--soft)}
.p3-m0 .p3-m-frame,.p3-m3 .p3-m-frame{border-radius:50% 50% 18px 18px/34% 34% 18px 18px}
.p3-m img{width:100%;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.p3-m:hover img{transform:scale(1.035)}
.p3-n1 .p3-m-frame{border-radius:50% 50% 18px 18px/34% 34% 18px 18px}
.p3-m figcaption{padding:10px 6px 0;text-align:center;font:italic 400 17px/1.35 var(--serif);color:var(--muted)}

/* testimonials */
.p3-quotes{text-align:center}
.p3-quote-list{display:grid;gap:clamp(40px,5vw,64px);max-width:860px;margin:0 auto}
.p3-quote-list blockquote{font:italic 400 clamp(24px,2.8vw,36px)/1.35 var(--serif)}
.p3-quote-list blockquote::before{content:"“";display:block;font:400 64px/.5 var(--serif);color:var(--accent);margin-bottom:12px}
.p3-quote-list figcaption{margin-top:16px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* faq */
.p3-faq-list{max-width:820px;margin:0 auto;display:grid;gap:12px}
.p3-faq-list details{background:var(--soft);border-radius:24px;padding:0 clamp(20px,3vw,32px);border:1px solid transparent;transition:border-color .2s}
.p3-faq-list details[open]{border-color:var(--line)}
.p3-faq-list summary{font:500 clamp(20px,1.9vw,24px)/1.3 var(--serif);padding:20px 0;min-height:44px}
.p3-faq-list summary::after{color:var(--accent)}
.p3-faq-list details p{margin:0 0 22px;color:var(--muted);max-width:40em}

/* contact: arched card */
.p3-contact-card{max-width:820px;margin:0 auto;text-align:center;padding:clamp(72px,9vw,120px) clamp(20px,5vw,72px) clamp(40px,5vw,64px);background:var(--soft);border-radius:999px 999px 40px 40px;border:1px solid var(--line)}
.p3-contact h2{max-width:12em;margin:0 auto 20px}
.p3-contact-intro{color:var(--muted);max-width:30em;margin:0 auto 22px}
.p3-contact-list{margin:clamp(32px,4vw,48px) auto 0;max-width:560px;text-align:left}
.p3-contact-list li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 16px;padding:14px 0;border-top:1px solid var(--line)}
.p3-contact-list .bc-k{color:var(--accent);opacity:1;font-weight:600;padding-top:3px}
.p3-contact-list a{display:inline-flex;align-items:center;min-height:44px;margin-block:-10px}
.p3-social{display:flex;flex-wrap:wrap;justify-content:center;gap:0 24px;margin-top:20px}
.p3-social a{min-height:44px;display:inline-flex;align-items:center;font:italic 400 19px/1 var(--serif)}
.p3-foot{text-align:center;padding:24px var(--gut) 40px}
.p3-foot-brand{margin:0 0 10px;font:italic 300 clamp(36px,5vw,64px)/1.1 var(--serif)}
.p3-foot-meta{margin:0;font-size:12px;letter-spacing:.2em;color:var(--muted)}

@media (max-width:900px) and (min-width:761px){.p3-masonry:not(.p3-n1){columns:2}}
@media (max-width:760px){
  .p3-hero,.p3-about{grid-template-columns:minmax(0,1fr)}
  .p3-arch{max-width:340px;padding:12px 12px 0}
  .p3-arch::before{inset:0 0 -12px}
  .p3-arch::after{bottom:-12px}
  .p3-hero h1{font-size:clamp(42px,12vw,64px)}
  .p3-about{border-radius:0}
  .p3-about-img{max-width:300px;grid-row:1}
  .p3-masonry:not(.p3-n1){columns:2}
  .p3-m figcaption{font-size:15px}
  .p3-contact{padding-left:12px!important;padding-right:12px!important}
  .p3-contact-card{border-radius:200px 200px 28px 28px}
  .p3-contact-list li{grid-template-columns:minmax(0,1fr);gap:0;text-align:center}
}
